onerror = controlarError; // Método que maneja los errores
function controlarError(msg,url,l){
    txt = "Ocurrio un error en la pagina. \n\n";
    txt += "Error "+msg+ "\n";
    txt += "URL: "+url+ "\n";
    txt += "Linea:"+l+ "\n\n";
    alert(txt);
    return true;
}

var segundoReloj = 0;
// MUESTRA LA FECHA Y HORA
contSeg = 0;
fechaActualRel = new Date();
/*
Calendar s_now = Calendar.getInstance();
out.println("<script type='text/javascript'>");
out.println(" s_year = "+s_now.get(Calendar.YEAR));
out.println(" s_Month = "+s_now.get(Calendar.MONTH));
out.println(" s_DayOfMonth = "+s_now.get(Calendar.DAY_OF_MONTH));
out.println(" s_Hra = "+s_now.get(Calendar.HOUR_OF_DAY));
out.println(" s_Min = "+s_now.get(Calendar.MINUTE));
out.println(" s_Seg = "+s_now.get(Calendar.SECOND));
out.println(" s_MilSeg = "+s_now.get(Calendar.MILLISECOND));
out.println("</script>");
*/
// function muestraFechaHora(now_year,now_Month,now_DayOfMonth,now_Hra,now_Min,now_Seg,now_MilSeg){
/*now_year = 2012;
now_Month = 3;
now_DayOfMonth = 14;
now_Hra = 9;
now_Min = 10;
now_Seg = 1;
now_MilSeg = 0;*/

function showTime(now_year,now_Month,now_DayOfMonth,now_Hra,now_Min,now_Seg,now_MilSeg){
    var dayarray = new Array("Domingo","Lunes","Martes","Mi&eacute;rcoles","Jueves","Viernes","S&aacute;bado")
    var montharray = new Array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre")
    if(contSeg > 0)
        fechaActualRel.setSeconds(segundoReloj+1);
    else
        fechaActualRel = new Date(now_year,now_Month,now_DayOfMonth,now_Hra,now_Min,now_Seg,now_MilSeg);
    var year = fechaActualRel.getYear();
    if (year < 1000)
        year += 1900;
    var day = fechaActualRel.getDay();
    var month = fechaActualRel.getMonth();
    var daym = fechaActualRel.getDate();
    if (daym < 10)
        daym = "" + daym;

    var hora = fechaActualRel.getHours();
    var minuto = fechaActualRel.getMinutes();
    segundoReloj = fechaActualRel.getSeconds();

    str_segundo = new String (segundoReloj);
    if (str_segundo.length == 1)
        str_segundo = "0" + segundoReloj;
    
    str_minuto = new String (minuto);
    if (str_minuto.length == 1)
        str_minuto = "0" + minuto;

    str_hora = new String (hora);
    if (str_hora.length == 1)
        str_hora = "0" + hora;

    horaImprimible = str_hora + " : " + str_minuto + " : " + str_segundo;
    document.getElementById("fechaServ").innerHTML = dayarray[day] + ", " + daym + " de " + montharray[month] + " del " + year;
    document.getElementById("horaServ").innerHTML = horaImprimible;
    contSeg++;
    setTimeout("showTime(0,0,0,0,0,0,0)",1000);
    
}
function showdate(mydate){
    var year = mydate.getYear()
    if (year < 1000)
     year += 1900
    var day = mydate.getDay()
    var month = mydate.getMonth()
    var daym = mydate.getDate()
    if (daym < 10)
     daym = "" + daym
    var dayarray = new Array("Domingo","Lunes","Martes","Mi&eacute;rcoles","Jueves","Viernes","S&aacute;bado")
    var montharray = new Array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre")
    return dayarray[day] + ", " + daym + " de " + montharray[month] + " del " + year;
}
espacios = /^\s+$/;
//email = !(/\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/;
// ES LETRA?
function letras(campo) {
    var ubicacion;
    var caracteres = "abcdefghijklmnopqrstuvwxyzñ ABCDEFGHIJKLMNOPQRSTUVWXYZÑáéíóúÁÉÍÓÚ";
    var contador = 0;
    for (var i=0; i < campo.length; i++) {
        ubicacion = campo.substring(i, i + 1);
        if (caracteres.indexOf(ubicacion) != -1) {
          contador++;
        } else {
          alert("ERROR: No se acepta el caracter '" + ubicacion + "'.");
          return false;
        }
    }
    return true;
}
// ES LETRA Y NUMERO?
function letras_Numeros(campo) {
    var ubicacion;
    var caracteres = "abcdefghijklmnopqrstuvwxyzñ ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ÑáéíóúÁÉÍÓÚ.,:?¿=+()@!";
    var contador = 0;
    for (var i=0; i < campo.length; i++) {
        ubicacion = campo.substring(i, i + 1);
        if (caracteres.indexOf(ubicacion) != -1) {
          contador++;
        } else {
          alert("ERROR: No se acepta el caracter '" + ubicacion + "'.");
          return false;
        }
    }
    return true;
}
/*  METODODO QUE CONTROLAS LOS CARACRTERES INGRESADOS DESDE EL TECLADO
 *  Sólo números
 *  <input type="text" id="texto" onkeypress="return permite(event, 'num')" />
 *  Sólo letras
 *  <input type="text" id="texto" onkeypress="return permite(event, 'car')" />
 *  Sólo letras o números
 *  <input type="text" id="texto" onkeypress="return permite(event, 'num_car')" />
**/
function permite(elEvento, permitidos) {
    // Variables que definen los caracteres permitidos
    var numeros = "0123456789.";
    var caracteres = " abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ";
    var numeros_caracteres = numeros + caracteres;
    var teclas_especiales = [8, 37, 39, 46, 9]; // 9 = tabulador horizontal
    var ci = "0123456789";
    var numerosNegativos = "0123456789.-";
    // 8 = BackSpace, 46 = Supr, 37 = flecha izquierda, 39 = flecha derecha
    // Seleccionar los caracteres a partir del parámetro de la función
    switch(permitidos) {
        case 'num':
        permitidos = numeros;
        break;
        case 'car':
        permitidos = caracteres;
        break;
        case 'num_car':
        permitidos = numeros_caracteres;
        break;
        case 'ci':
        permitidos = ci;
        break;
        case 'numerosNegativos':
        permitidos = numerosNegativos;
        break;
    }
    // Obtener la tecla pulsada
    var evento = elEvento || window.event;
    var codigoCaracter = evento.charCode || evento.keyCode;
    var caracter = String.fromCharCode(codigoCaracter);
    // Comprobar si la tecla pulsada es alguna de las teclas especiales
    // (teclas de borrado y flechas horizontales)
    var tecla_especial = false;
    for(var i in teclas_especiales) {
        if(codigoCaracter == teclas_especiales[i]) {
            tecla_especial = true;
            break;
        }
    }
    // Comprobar si la tecla pulsada se encuentra en los caracteres permitidos
    // o si es una tecla especial
    return permitidos.indexOf(caracter) != -1 || tecla_especial;
}
// METODO QUE CONVIERTE A FORMATO MYSQL. La entrada es una fecha ej: 05/01/2010
function aFormatoMysql(fecha){
    var dia = fecha.substring(0,2);
    var mes = fecha.substring(3,5);
    var anio = fecha.substring(6);
    return anio+"-"+mes+"-"+dia;
}

function redondea(valor, nDec){
    var n = parseFloat(valor);
    var s = "0.00";
    if (!isNaN(n)){
        n = Math.round(n * Math.pow(10, nDec)) / Math.pow(10, nDec);
        s = String(n);
        s += (s.indexOf(".") == -1? ".": "") + String(Math.pow(10, nDec)).substr(1);
        if(nDec != 0)
            s = s.substr(0, s.indexOf(".") + nDec + 1);
        else
            s = s.substr(0, s.indexOf("."));
    }
    return s;
} 
function deMysqlABol(fecha){ //2011-12-22
    var dia = fecha.substring(8);
    var mes = fecha.substring(5,7);
    var anio = fecha.substring(0,4);
    return dia+"/"+mes+"/"+anio;
}

// ================================================================================
// ======= ESTE BLOQUE ES PARA CONVERTIR UN MONTO EN BOLIVIANOS A "LITERAL" =======
// ================================================================================
var unidades = new Array("","uno","dos","tres","cuatro","cinco","seis","siete","ocho","nueve","diez","once","doce","trece","catorce","quince");
var decenas = new Array("","diez","veint","treinta","cuarenta","cincuenta","sesenta","setenta","ochenta","noventa");
var centenas = new Array("","cien","doscientos","trescientos","cuatrocientos","quinientos","seiscientos","setecientos","ochocientos","novecientos");			

function getFormatoLiteral(numero){						
    var dollars = Math.floor(numero);		
    var monto = Math.floor(numero);
    var cents = parseInt(Math.round((numero*100 - dollars*100)),10);
    var thousands = (dollars - dollars % 1000) / 1000;
    dollars -= thousands * 1000;
    //alert("dollars: "+dollars+" monto: "+monto+" cents: "+cents+" thousands: "+thousands);
    var output = "";
    if ( monto >= 1000 ) {
        if ( monto < 2000 ) {
                output += "mil ";
        } else {
                output += num(thousands) + " mil ";
        }
    }
    output += (dollars > 0)?num(dollars) + "   " : "";
    output += ((cents < 10)? "0"+cents : cents)  +"/100";		
    //alert(output.substring(0,1).toUpperCase() + output.substring(1));
    return output.substring(0,1).toUpperCase() + output.substring(1);
}
function num(k){
    
    var j = parseInt(( (k - k % 100) / 100),10);
    var i = parseInt((k - j * 100),10);
    var cen = "";
    if ( j>0 ) {
        cen = centenas[j];
        cen += (j == 1 && i!=0) ? "to" : "";
        cen += (i > 0) ? " " : "";
    }
    if (i<16) return cen + unidades[i];
    var tens = parseInt(((i - i % 10) / 10),10);
    var units = parseInt((i - (i - i % 10)),10);
    if ( tens == 2 ) {
            return cen + decenas[tens] + ((units > 0) ? "i" : "e") + unidades[units];
    } else {
            return cen + decenas[tens] + ((tens > 0 && units > 0) ? " y " : "") + unidades[units];
    }		
}
// ====== FIN DEL BLOQUE CONVERTIR BOLIVIANOS A LITERAL o sea en letras